package com.klm.easymq.core;

/**
 * 消息序列化器接口
 * 支持JSON和Protobuf两种序列化方式
 */
public interface MessageSerializer {
    
    /**
     * 序列化消息
     * @param message 消息对象
     * @return 序列化后的字节数组
     */
    byte[] serialize(Object message);
    
    /**
     * 反序列化消息
     * @param data 序列化的字节数组
     * @param clazz 目标类型
     * @return 反序列化后的对象
     */
    <T> T deserialize(byte[] data, Class<T> clazz);
    
    /**
     * 获取序列化器类型
     * @return 序列化器类型
     */
    String getType();
} 